<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8">
    <title>修改密码</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" th:href="@{/lib/layui/css/layui.css}" media="all">
    <link rel="stylesheet" th:href="@{/css/public.css}" media="all">
    <style>
        .layui-form-item .layui-input-company {
            width: auto;
            padding-right: 10px;
            line-height: 38px;
        }
    </style>
</head>
<body>
<div class="layuimini-container">
    <div class="layuimini-main">

        <div class="layui-form layuimini-form">
            <div class="layui-form-item">
                <label class="layui-form-label required">旧的密码</label>
                <div class="layui-input-block">
                    <input type="password" name="old_password" lay-verify="required" lay-reqtext="旧的密码不能为空" placeholder="请输入旧的密码"  value="" class="layui-input">
                    <tip>填写自己账号的旧的密码。</tip>
                </div>
            </div>

            <div class="layui-form-item">
                <label class="layui-form-label required">新的密码</label>
                <div class="layui-input-block">
                    <input type="password" name="new_password" lay-verify="required|pass" lay-reqtext="新的密码不能为空" placeholder="请输入新的密码"  value="" class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label required">再输入一遍</label>
                <div class="layui-input-block">
                    <input type="password" name="again_password" lay-verify="required|pass" lay-reqtext="新的密码不能为空" placeholder="请输入新的密码"  value="" class="layui-input">
                </div>
            </div>

            <div class="layui-form-item">
                <div class="layui-input-block">
                    <button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
                </div>
            </div>
        </div>
    </div>
</div>
<script th:src="@{/lib/jquery-3.4.1/jquery-3.4.1.min.js}" charset="utf-8"></script>
<script th:src="@{/lib/layui/layui.js}" charset="utf-8"></script>
<script th:src="@{/js/lay-config.js}" charset="utf-8"></script>
<script th:src="@{/lib/coco-message/coco-message.js}" charset="utf-8"></script>
<script th:src="@{/lib/md5/md5.min.js}" charset="utf-8"></script>
<script type="text/javascript" th:inline="javascript">
    AjaxUtil.ctx = /*[[@{/}]]*/'';
    layui.use(['form', 'layer', 'miniTab'], function () {
        var form = layui.form,
            layer = layui.layer,
            miniTab = layui.miniTab;

        //监听提交
        form.on('submit(saveBtn)', function (data) {
            let index = layer.alert("是否确定更改密码？", {
                title: '确认提醒'
            }, function () {
                // 关闭对话框
                layer.close(index);
                let new_password = data.field.new_password;
                let again_password = data.field.again_password;
                if (new_password != again_password) {
                    layer.msg('两次输入密码不一致！');
                    return false;
                }

                data.field.old_password = md5.MD5(data.field.old_password);
                data.field.new_password = md5.MD5(data.field.new_password);
                data.field.again_password = md5.MD5(data.field.again_password);

                var loading = layer.load(0, {shade: 0.1});
                AjaxUtil.post({
                    url: AjaxUtil.ctx + "admin/doUpdatePassword",
                    data: data.field,
                    success: function (msg) {
                        layer.close(loading);
                        if (msg.code === 0) {
                            window.location.href = AjaxUtil.ctx + "admin/outLogin";
                            Message.success(1000, msg.message, function () {
                                // 成功的话，则关闭miniTab
                                miniTab.deleteCurrentByIframe();
                            });
                        } else {
                            Message.error(msg.message, 1000);
                        }
                    },
                    error: function (error) {
                    }
                });

            });
            return false;
        });


        form.verify({
            pass: function(value, item){ //value：表单的值、item：表单的DOM对象
                // 密码中必须包含字母（不区分大小写）、数字、特称字符，至少8个字符，最多30个字符；
                var pwdRegex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}');
                if(!pwdRegex.test(value)){
                    return '新密码复杂度过低（密码中必须包含字母、数字、特殊字符）';
                }
            },
        });

    });
</script>
</body>
</html>